const svgCaptcha = require('svg-captcha');
const AppError = require('../utils/AppError');
exports.captcha = (req, res, next) => {
	let captcha = svgCaptcha.createMathExpr({
		size: 5, // 长度
		ignoreChars: 'il1', // 排除的字符
		noise: 2, // 干扰线条数
		color: true // 五颜六色
	});
	req.session.captcha = captcha.text; // 把验证码的文本存到session，登录的时候校验与用户输入是否一致
	res.type('svg');
	res.send(captcha.data); // 把验证码图形响应到客户
};

// 校验图形验证码
exports.visCaptcha = (req, res, next) => {
	// 校验 req.session.captcha 是否等于 req.body.captcha
	if (req.session.captcha != req.body.captcha) {
		req.session.captcha = '';
		return next(new AppError('图形验证码校验失败', 401));
	}
	// req.session.captcha = ''; // 生产环境要请空
	next();
};
